package _220324;

import java.util.LinkedList;
import java.util.Queue;

/**
 * @author ShadowLim
 * @create 2022-03-24-12:54
 */
public class 扩散 {

    /**
     * 超时
     * 运行时间: 2249ms
     * 内存: 132508kb
     */
//    static int[][] dirs = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};
//    static boolean[][] vis = new boolean[8000][8000];
//
//    public static void main(String[] args) {
//        /**
//         * 因为画布无穷大 所以(0,0)不是左上角 加上2020确保不会越界
//         */
//        vis[2020][2020] = true;
//        vis[4040][2031] = true;
//        vis[2031][2034] = true;
//        vis[4020][4020] = true;
//        bfs();
//    }
//
//    private static void bfs() {
//        Queue<Node> q = new LinkedList<>();
//        q.offer(new Node(2020, 2020, 0));
//        q.offer(new Node(4040, 2031, 0));
//        q.offer(new Node(2031, 2034, 0));
//        q.offer(new Node(4020, 4020, 0));
//
//        int ans = 4;
//        while (!q.isEmpty()) {
//            Node cur = q.poll();
//            if (cur.step == 2020) {
//                continue;
//            }
//            for (int i = 0; i < 4; i++) {
//                int nx = cur.x + dirs[i][0];
//                int ny = cur.y + dirs[i][1];
//                if (nx < 0 || ny < 0) {
//                    break;
//                } else {
//                    if (!vis[nx][ny]) {
//                        vis[nx][ny] = true;
//                        ans++;
//                        Node next = new Node(nx, ny, cur.step + 1);
//                        q.offer(next);
//                    }
//                }
//            }
//        }
//        System.out.println(ans);
//    }
//}
//
//class Node {
//    int x, y, step;
//
//    public Node(int x, int y, int step) {
//        this.x = x;
//        this.y = y;
//        this.step = step;
//    }
//}


    /**
     * 运行时间: 587ms
     * 内存: 65488kb
     */
    static boolean map[][]=new boolean[6100][6100];
    static void f(int x,int y){
        for(int i=x-2020;i<=x+2020;i++)
            for(int j=y-2020;j<=y+2020;j++)
                if(Math.abs(i-x)+Math.abs(j-y)<=2020)
                    map[i][j]=true;
    }
    public static void main(String[] args) {
        int x1=0+2020,y1=0+2020;
        int x2=2020+2020,y2=11+2020;
        int x3=11+2020,y3=14+2020;
        int x4=2000+2020,y4=2000+2020;
        f(x1,y1);
        f(x2,y2);
        f(x3,y3);
        f(x4,y4);
        int ans=0;
        for(int i=0;i<6100;i++){
            for(int j=0;j<6100;j++){
                if(map[i][j])ans++;
            }
        }
        System.out.println(ans);
    }

}